// wm是wmall的缩写

var conf = {
    // 服务器主机地址
    serverHost: ''
}

// 引入hogan组件，用于渲染html模板
var hogan = require('hogan.js')


var wm = {
    // 网络请求
    request: function (obj) {
        var that = this  // 当前的this对象赋值
        $.ajax({
            type: obj.method || 'get',
            url: obj.url || '',
            dataType: obj.type || 'json',
            data: obj.data || '',
            success: function (res) {
                if (res.status === 0) {  // 请求成功
                    typeof obj.success === 'function' && obj.success(res.data, res.msg)
                } else if (res.status === 10) {  // 没有登录状态，需要强制登录
                    that.doLogin()  // that是当前对象
                } else if (res.status === 1) {  // 请求数据错误
                    typeof obj.error === 'function' && obj.error(res.msg)
                }
            },
            error: function (err) {
                typeof obj.error === 'function' && obj.error(err.statusText)
            }
        })
    },

    // 获取服务器地址
    getServerUrl: function (path) {
        return conf.serverHost + path
    },

    // 获取url参数
    getUrlParam: function(name){
        // happymmall.com/product/list?keyword=xxx&&page=1
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)')
        var result = window.location.search.substr(1).match(reg)
        return result ? decodeURIComponent(result[2]) : null
    },

    // 渲染html模板：html模板、数据
    renderHtml: function(htmlTemplate, data){
        var template = hogan.compile(htmlTemplate),  // 第一步：编译
            result = template.render(data)           // 第二步：渲染输出
        return result
    },

    // 成功提示
    successTips: function(msg){
        alert(msg || '操作成功')
    },
    // 失败提示
    errorTips: function(msg){
        alert(msg || '出错了')
    },

    // 字段的验证，支持非空、手机、邮箱
    validate: function(value, type){
        var value = $.trim(value)
        // 非空验证
        if(type === 'require'){
            return !!value
        }
        // 手机验证
        if(type === 'phone'){
            return /^1\d{10}$/.test(value)
        }
        // 邮箱格式验证
        if(type === 'email'){
            return /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/.test(value)
        }
    },

    // 统一登录处理，跳转到登录页
    doLogin: function () {
        // encodeURIComponent() 是编码url，防止有其他的字符截断
        // ?redirect=window.location.href 是登录后跳转到原来的页面的地址
        window.location.href = './user-login.html?redirect=' + encodeURIComponent(window.location.href)
    },

    // 回到首页
    goHome: function(){
        window.location.href = './index.html'
    }
}

module.exports = wm